// 1 6 14 3
// 1 14 3 6 
/* async function func1() {
    await func2();
    func3()
};

function func2() {
    setTimeout(() => {
        console.log(14);
        setTimeout(() => {
            console.log(3)
        }, 0);
    }, 200);
    console.log(1);
}

function func3() {
    setTimeout(() => {
        console.log(6)
    }, 200);
}
func1() */
// 改写 相当于:
/* new Promise((resolve, reject) => {
    func2();
    resolve();
}).then(console.log(2))
console.log(1)
let a = setTimeout(() => {
    console.log(2)
}, 1000);
console.log(3) */

function func1() {
    setTimeout(() => {
        console.log(1);
    }, 1000);
    return 10
};

function func2() {
    setTimeout(() => {
        console.log(2);
    }, 1000);
    return 12
};

function func3() {
    setTimeout(() => {
        console.log(3);
    }, 1000);
    console.log(arguments)
};

async function func() {
    let a = await func1();
    let b = await func2();
    await func3(a,b);
};
func();